package com.rxyb.core.constants;

/**
 * <p>
 * 事件静态常量
 * </p>
 *
 * @author kylin
 * @since 2019-11-14
 **/
public interface EventConstant {
    /**
     * 事件数据-token
     */
    String EVENT_DATA_TOKEN = "eventDataToken";
    /**
     * 请求头-Authorization
     */
    String REQUEST_HEADER_AUTHORIZATION = "Authorization";
    /**
     * 请求-参数
     */
    String REQUEST_PARAM = "requestParam";
    /**
     * 请求-方法
     */
    String REQUEST_METHOD = "requestMethod";
    /**
     * 请求-path
     */
    String REQUEST_PATH = "requestPath";
    /**
     * 请求-body
     */
    String REQUEST_BODY = "requestBody";

    /**
     * MQ队列-event
     */
    String MQ_QUEUE_EVENT = "event.queue";

    /**
     * 事件的延迟队列
     */
    String MQ_QUEUE_EVENT_DELAY = "event.delay.queue";
    /**
     * 事件延迟队列交换机
     */
    String MQ_EXCHANGE_EVENT_DELAY = "event.delay.exchange";
    /**
     * 状态 禁用 / false
     */
    Integer DISABLE = 1;
    /**
     * 状态 启用 / true
     */
    Integer ENABLE = 0;

    /**
     * 事件模型类型 - 数据类
     */
    Integer MODEL_TYPE_DATA = 2;
    /**
     * 事件模型类型 - 业务类
     */
    Integer MODEL_TYPE_BUSINESS = 3;
    /**
     * 事件模型类型 - 行为类
     */
    Integer MODEL_TYPE_BEHAVIOR = 4;

    /**
     * 事件消息类型 - 短信
     */
    Integer MSG_TYPE_SMS = 5;
    /**
     * 事件消息类型 - 微信
     */
    Integer MSG_TYPE_MP = 6;
    /**
     * 事件消息类型 - 邮件
     */
    Integer MSG_TYPE_EMAIL = 7;
    /**
     * 事件消息类型 - 站内消息
     */
    Integer MSG_TYPE_MESSAGE = 8;

    /* TODO: 通知对象接受类型改 策略模式 */
    /**
     * 通知接受对象类型 - 部门
     */
    Integer RECEIVE_TYPE_PART = 9;
    /**
     * 通知接受对象类型 - 岗位
     */
    Integer RECEIVE_TYPE_QUARTERS = 10;
    /**
     * 通知接受对象类型 - 角色
     */
    Integer RECEIVE_TYPE_ROLE = 11;
    /**
     * 通知接受对象类型 - 用户
     */
    Integer RECEIVE_TYPE_USER = 12;
    /**
     * 通知接受对象类型 - 值类型
     */
    Integer RECEIVE_TYPE_VALUE = 28;

    /**
     * 处理方式 - 自动
     */
    Integer HANDLING_TYPE_AUTO = 13;
    /**
     * 处理方式 - 人工
     */
    Integer HANDLING_TYPE_PERSON = 14;
    /**
     * 处理方式 - 无需处理
     */
    Integer HANDLING_TYPE_MISS = 15;

    /**
     * 业务类型 - 人员 员工入职
     */
    Integer BUSINESS_TYPE_PERSON = 16;
    /**
     * 业务类型 - 合同 合同签订
     */
    Integer BUSINESS_TYPE_CONTRACT = 17;
    /**
     * 业务类型 - 数据 数据统计
     */
    Integer BUSINESS_TYPE_DATA = 18;
    /**
     * 业务类型 - 社保 社保增员
     */
    Integer BUSINESS_TYPE_SOCIAL = 19;

    /**
     * 生成事件处理类型 - url
     */
    Integer EVENT_TYPE_URL = 20;
    /**
     * 生成事件处理类型 - id
     */
    Integer EVENT_TYPE_ID = 21;
    /**
     * 生成事件处理类型 - Logo
     */
    Integer EVENT_TYPE_LOGO = 32;

    /**
     * 消息状态 - 未读
     */
    Integer REMIND_STATUS_UNREAD = 22;
    /**
     * 消息状态 - 未发送
     */
    Integer REMIND_STATUS_UNSEND = 23;
    /**
     * 消息状态 - 已读
     */
    Integer REMIND_STATUS_READ = 29;

    /**
     * 短信发送状态 - 发送失败
     */
    Integer STATUS_SEND_ERROR = 25;
    /**
     * 短信发送状态 - 发送成功
     */
    Integer STATUS_SEND = 24;

    /**
     * 代办状态 - 未发送
     */
    Integer TODO_STATUS_UNSEND = 26;
    /**
     * 代办状态 - 未读
     */
    Integer TODO_STATUS_UNREAD = 27;
    /**
     * 代办状态 - 已读
     */
    Integer TODO_STATUS_READ = 30;
    /**
     * 代办状态 - 已办
     */
    Integer TODO_STATUS_DO = 31;

    // 28 已用 通知接受对象类型 - 值类型
    // 29、30、31已用 - 新增提醒代办状态
    // 32 已用 - 生成事件处理类型 - Logo
}
